#ifndef ENNEMIS_H
#   define ENNEMIS_H


#include "tab_dyn_id.h"


/**
 * \struct ennemi ennemis.h
 * Permet de tout savoir sur un ennemi durant une bataille
 * (ce qui peut etre necessaire, en tout cas)
 * C'est une liste doublement chainee non-circulaire
 */
struct ennemi
{
    /**
     * L'id est la position de l'ennemi dans le tableau de la base_donnee
     * qui contient la description de tous les ennemis
     */
    unsigned int id;
    unsigned int coord_x;
    unsigned int coord_y;
    /**
     * l'orientation permet de savoir vers ou est tourne l'ennemi.
     * Utiliser pour cela les constantes HAUT, DROITE, BAS, GAUCHE.
     * Notez qu'un etre vivant ne peut pas avoir une orientation NEUTRE,
     * contrairement a ce que l'on peut trouver dans un resume_saisie
     */
    char orientation;
    unsigned int pv;
    unsigned int score_deplacement;
    unsigned int score_charge;
    /** VRAI si l'ennemi est en mouvement, FAUX sinon */
    char en_mouvement;
    /**
     * il s'agit d'une liste doublement chainee, on trouve donc un pointeur
     * vers l'element suivant et un vers le precedent
     */
    struct ennemi* suiv;
    struct ennemi* prec;
    /**
     * pour trouver les autres informations, il faut utiliser les fonctions get
     * qui recuperent des champs de la description de l'ennemi dans une
     * structure base_donnee correctement remplie (l'id de l'ennemi suffit pour
     * tout y retrouver)
     */
};




/**
 * \struct liste_ennemis ennemis.h
 * Liste chainee contenant les ennemis vivants lors d'une bataille
 */
struct liste_ennemis
{
    struct ennemi* prem;
};







#endif /* ENNEMIS_H */
